package com.yequan.activemq.queue;


import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * @author : Administrator
 * @date : 2020/2/12
 */
public class ActiveMqQueueProducerDemo {

    public static void testQueueProducer(String message) {
        try {
            //1.创建一个连接工厂对象,指定服务ip和端口
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.157.140:61616");
            //2.使用连接工厂对象创建一个connection对象
            Connection connection = connectionFactory.createConnection();
            //3.使用连接对象connection开启连接
            connection.start();
            //4.创建session对象
            //第一个参数:是否开启事务.如果开启事务,则第二个参数无意义,一半不开启事务
            //第二个参数:应答模式.自动应答或手动应答,一般为自动应答
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            //5.使用session对象创建一个destination对象,现在使用的是queue
            Queue queue = session.createQueue("test-queue");
            //6.使用session对象创建一个producer对象,指定destination
            MessageProducer producer = session.createProducer(queue);
            //7.创建一个message对象:1.使用session对象创建;2.直接new创建,new ActiveMQTextMessage();
            TextMessage textMessage = session.createTextMessage(message);
            //8.发送消息
            producer.send(textMessage);
            //9.关闭资源
            producer.close();
            session.close();
            connection.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        try {
            int count = 0;
            while (count < 100) {
                count++;
                testQueueProducer("Hello ActiveMQ " + count);
                System.out.println("发送的第" + count + "条消息");
                Thread.sleep(500);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}
